import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.jar.Attributes;
import java.util.jar.JarEntry;  
import java.util.jar.JarOutputStream;  
import java.util.jar.Manifest;
import java.util.zip.Deflater;  
  
/** 
 * Ejemplo de java.util.jar 
 * @author Autentia 
 */  
public class CreaJar {  
    /** 
     * @param args the command line arguments 
     */  
    public  void ain() {  
        String nombreJar = "Programa.jar";  
     
        //Comprobamos si existe  salida 
         
          
        //Creamos el fichero jar de salida 
        File jarFile = new File( nombreJar);          
        byte[] buffer = new byte[1024];          
        try {  
        	

            Manifest mm = new Manifest();
            Attributes a = mm.getMainAttributes();
            a.putValue("Manifest-Version", "1.0");
            a.putValue("Ant-Version", "Apache Ant 1.8.3");
            a.putValue("Created-By", "1.7.0_04-b20 (Oracle Corporation)");
            a.putValue("Class-Path", "");
            a.putValue("X-COMMENT", "By derryper");
            a.putValue("Main-Class", "Cliente");

           // JarOutputStream out = new JarOutputStream(new FileOutputStream(t), mm);
            JarOutputStream outJar = new JarOutputStream(new FileOutputStream(jarFile),mm);  
            
            outJar.setLevel(Deflater.DEFAULT_COMPRESSION);  
              
            //Escribiendo el primer fichero  
            JarEntry jarEntry = new JarEntry("Cliente.class");  
            outJar.putNextEntry(jarEntry);  
              
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            InputStream input = new FileInputStream(new File("Cliente.class"));  
            int count;  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 )  
            {  
                outJar.write(buffer, 0, count);  
            }  
              
            outJar.closeEntry();  
  
              
            //Escribiendo el segundo fichero  
            jarEntry = new JarEntry("ByteStream.class");  
            outJar.putNextEntry(jarEntry);  
  
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("ByteStream.class"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }       
            outJar.closeEntry(); 
            jarEntry = new JarEntry("Enviafile.class");  
            outJar.putNextEntry(jarEntry);  
  
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("Enviafile.class"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }  outJar.closeEntry(); 
            jarEntry = new JarEntry("Obtpant.class");  
            outJar.putNextEntry(jarEntry);  
  
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("Obtpant.class"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }  
              
            outJar.closeEntry();  
          //  outJar.putNextEntry(jarEntry);  
            jarEntry = new JarEntry("Registrator.class");  
            outJar.putNextEntry(jarEntry); 
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("Registrator.class"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }  outJar.closeEntry(); 
            jarEntry = new JarEntry("aver.txt");  
            outJar.putNextEntry(jarEntry); 
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("aver.txt"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }  outJar.closeEntry(); 
                        jarEntry = new JarEntry("DoserAction.class");  
            outJar.putNextEntry(jarEntry);  
  
            // Leyendo los datos del fichero y escribiendolos en el Jar  
            input = new FileInputStream(new File("DoserAction.class"));  
            while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){  
                outJar.write(buffer, 0, count);  
            }  
              
            outJar.closeEntry();  
            		//UN MANIFEST
            
            
            
            
            
            outJar.close();  
        } catch ( IOException e ) {              
            System.out.println( "Error del jar " + e);  
        }       
    }  
}  
      
